package com.honour.service.interfaced.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.honour.service.interfaced.CartInManager;
import com.system.dao.DaoSupport;
import com.system.util.PageData;
/**
 * 购物车
 * @Function 
 * @Author zhaozhenhua
 * @Date 2018年1月24日
 */
@Service("cartInService")
public class CartInService implements CartInManager{
	
	@Resource(name = "daoSupport")
	private DaoSupport dao;

	/**
	 * 添加商品到购物车
	 */
	@Override
	public void save(PageData pd) throws Exception {
		dao.save("CartInMapper.save", pd);
	}
	/**
	 * 立即购买添加购物车
	 */
	@Override
	public void buyNowSave(PageData pd) throws Exception {
		dao.save("CartInMapper.buyNowSave", pd);
	}

	/**
	 * 删除购物车
	 */
	@Override
	public void delete(PageData pd) throws Exception {
		dao.delete("CartInMapper.delete", pd);
	}

	/**
	 * 修改购物车
	 */
	@Override
	public void update(PageData pd) throws Exception {
		dao.update("CartInMapper.update", pd);
	}

	/**
	 * 根据用户id查询购物车列表
	 */
	/*@SuppressWarnings("unchecked")
	@Override
	public List<PageData> selectCartByUserId(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("CartInMapper.selectCartByUserId", pd);
	}*/

	/**
	 * 根据用户id从购物车移除商品
	 */
	@Override
	public void deleteProductIds(PageData pd) throws Exception {
		dao.delete("CartInMapper.deleteProductIds", pd);
	}

	/**
	 * 根据购物车id修改购物车已选或未选
	 */
	@Override
	public void updProChecked(PageData pd) throws Exception {
		dao.update("CartInMapper.update", pd);
	}

	/**
	 * 根据用户id查询已选购物车商品总数
	 */
	@Override
	public Integer selectCartProAllCount(PageData pd) throws Exception {
		return (Integer)dao.findForObject("CartInMapper.selectCartProAllCount", pd);
	}

	/**
	 * 根据用户id和商品id查询是否已存在该商品的购物车 
	 */
	@Override
	public PageData selectCartByDoubleId(PageData pd) throws Exception {
		return (PageData)dao.findForObject("CartInMapper.selectCartByDoubleId", pd);
	}

	/**
	 * 根据用户id和选择状态查询商品
	 * @Author zhanglingbing
	 * @date 2018年1月30日
	 * @param pd
	 * @throws Exception
	 *
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> selectProductByUserIdAndChecked(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("CartInMapper.selectProductByUserIdAndChecked", pd);
	}

	/**
	 * 获取购物车列表
	 * @Author zhanglingbing
	 * @date 2018年1月30日
	 * @param pd
	 * @return 商家名称,商品名称,商品价格,商品原价,商品配送方式,商品状态,商品规格,商品数量
	 * @throws Exception
	 *
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> selectCartListInfo(PageData pd) throws Exception {
		return (List<PageData>) dao.findForList("CartInMapper.selectCartListInfo", pd);
	}

	/**
	 * 动态查询商品的规格id,价格以及库存
	 * @Author zhanglingbing
	 * @date 2018年1月31日
	 * @param pd
	 * @return
	 * @throws Exception
	 *
	 */
	@Override
	public PageData selectStandardIdAndPrice(PageData pd) throws Exception {
		return (PageData) dao.findForObject("CartInMapper.selectStandardIdAndPrice", pd);
	}

	/**
	 * 通过订单id查询订单中的商品信息
	 * @author zhanglingbing
	 * @date 2018年2月1日
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<PageData> selectCartListInfoByOrderId(PageData pd) throws Exception {
		return  (List<PageData>) dao.findForList("CartInMapper.selectCartListInfoByOrderId", pd);
	}

	/**
	 * 根据规格id修改商品库存
	 * @author zhanglingbing
	 * @date 2018年2月2日
	 * @param pd
	 * @throws Exception
	 */
	@Override
	public void updStockByStandardId(PageData pd) throws Exception {
		dao.update("CartInMapper.updStockByStandardId", pd);
	}

	/**
	 * 通过购物车id查询商品数量,以及相对应的库存,规格id
	 * @author zhanglingbing
	 * @date 2018年2月2日
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	@Override
	public PageData selectProNumAndStoByCardId(PageData pd) throws Exception {
		return (PageData) dao.findForObject("CartInMapper.selectProNumAndStoByCardId", pd);
	}

	/**
	 * 通过商家id以及购物车id查询对应单个商品信息
	 * @author zhanglingbing
	 * @date 2018年2月3日
	 * @param pd(商家id,cartid)
	 * @return
	 * @throws Exception
	 */
	@Override
	public PageData selectOneProInfoByCardId(PageData pd) throws Exception {
		return (PageData) dao.findForObject("CartInMapper.selectCartListInfo", pd);
	}

	/**
	 * 购物车数量
	 * @author zhanglingbing
	 * @date 2018年2月26日
	 * @param pd
	 * @return
	 * @throws Exception
	 */
	@Override
	public PageData selectCartNum(PageData pd) throws Exception {
		return (PageData) dao.findForObject("CartInMapper.selectCartNum", pd);
	}
	
	
	
	
	

}
